import Msg from "./message";
const utils = {
  // 取出本地存储
  getStorage: key => {
    key = key ? key : "default";
    return localStorage.getItem(key)
      ? JSON.parse(localStorage.getItem(key))
      : {};
  },

  // 存入本地存储
  saveStorage: (key, data) => {
    key = key ? key : "default";
    return localStorage.setItem(key, JSON.stringify(data));
  },

  //移除本地存储
  removeStorage: key => {
    key = key ? key : "default";
    return localStorage.removeItem(key);
  },
  // 取出本地存储
  getSession: key => {
    key = key ? key : "default";
    return sessionStorage.getItem(key)
      ? JSON.parse(sessionStorage.getItem(key))
      : {};
  },

  // 存入本地存储
  saveSession: (key, data) => {
    key = key ? key : "default";
    return sessionStorage.setItem(key, JSON.stringify(data));
  },

  //移除本地存储
  removeSession: key => {
    key = key ? key : "default";
    return sessionStorage.removeItem(key);
  },

  // 深复制
  deepCopy: data => {
    return JSON.parse(JSON.stringify(data));
  },

  saveMenuId: (key, data) => {
    key = key ? key : "default";
    return sessionStorage.setItem(key, JSON.stringify(data));
  },

  // 计算文件大小
getFileSize: (fileSizeByte) => {
  let fileSizeMsg = "";
  if (fileSizeByte < 1048576) fileSizeMsg = (fileSizeByte / 1024).toFixed(2) + "KB";
  else if (fileSizeByte == 1048576) fileSizeMsg = "1MB";
  else if (fileSizeByte > 1048576 && fileSizeByte < 1073741824) fileSizeMsg = (fileSizeByte / (1024 * 1024)).toFixed(2) + "MB";
  else if (fileSizeByte > 1048576 && fileSizeByte == 1073741824) fileSizeMsg = "1GB";
  else if (fileSizeByte > 1073741824 && fileSizeByte < 1099511627776) fileSizeMsg = (fileSizeByte / (1024 * 1024 * 1024)).toFixed(2) + "GB";
  else fileSizeMsg = "文件超过1TB";
  return fileSizeMsg;
},

  getMenuId: key => {
    key = key ? key : "default";
    return sessionStorage.getItem(key)
      ? JSON.parse(sessionStorage.getItem(key))
      : {};
  },
  // 金额转换成中文大写金额
  convertCurrency: money => {
    //汉字的数字
    var cnNums = new Array(
      "零",
      "壹",
      "贰",
      "叁",
      "肆",
      "伍",
      "陆",
      "柒",
      "捌",
      "玖"
    );
    //基本单位
    var cnIntRadice = new Array("", "拾", "佰", "仟");
    //对应整数部分扩展单位
    var cnIntUnits = new Array("", "万", "亿", "兆");
    //对应小数部分单位
    var cnDecUnits = new Array("角", "分", "毫", "厘");
    //整数金额时后面跟的字符
    var cnInteger = "整";
    //整型完以后的单位
    var cnIntLast = "元";
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = "";
    //分离金额后用的数组，预定义
    var parts;
    if (money == "") {
      return "";
    }
    money = parseFloat(money);
    if (money >= maxNum) {
      //超出最大处理数字
      return "";
    }
    if (money == 0) {
      chineseStr = cnNums[0] + cnIntLast + cnInteger;
      return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf(".") == -1) {
      integerNum = money;
      decimalNum = "";
    } else {
      parts = money.split(".");
      integerNum = parts[0];
      decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
      var zeroCount = 0;
      var IntLen = integerNum.length;
      for (var i = 0; i < IntLen; i++) {
        var n = integerNum.substr(i, 1);
        var p = IntLen - i - 1;
        var q = p / 4;
        var m = p % 4;
        if (n == "0") {
          zeroCount++;
        } else {
          if (zeroCount > 0) {
            chineseStr += cnNums[0];
          }
          //归零
          zeroCount = 0;
          chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
        }
        if (m == 0 && zeroCount < 4) {
          chineseStr += cnIntUnits[q];
        }
      }
      chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != "") {
      var decLen = decimalNum.length;
      for (var j = 0; j < decLen; j++) {
        var k = decimalNum.substr(j, 1);
        if (k != "0") {
          chineseStr += cnNums[Number(k)] + cnDecUnits[j];
        }
      }
    }
    if (chineseStr == "") {
      chineseStr += cnNums[0] + cnIntLast + cnInteger;
    } else if (decimalNum == "") {
      chineseStr += cnInteger;
    }
    return chineseStr;
  },
  // 创建a标签新打开窗口
  openNewWindow(url) {
    // let tempLink = document.createElement('a');
    // // tempLink.style.display = 'none';
    // tempLink.href = url;
    // tempLink.setAttribute('target', '_blank');
    // document.body.appendChild(tempLink);
    // console.log(tempLink)
    // tempLink.click()
    // document.body.removeChild(tempLink);
    let newWeb = window.open(url);
    if (!newWeb) {
      Msg.showPopMsg("窗口已被浏览器拦截,请先设置浏览器允许访问！");
    }
  },
  validContainerNum: code => {
    if (code.length != 11) {
      return false;
    } else {
      let charCode = code.substr(0, 4);
      let lastNum = code.substr(4);
      // 前4位为大写字母,后7位为数字
      if (charCode !== charCode.toUpperCase()) {
        return false;
      } else if (isNaN(parseFloat(lastNum))) {
        return false;
      } else {
        return true;
      }
    }
  }
};

export default utils;
